package com.hxzy.shop.order.service;

import com.github.pagehelper.PageInfo;
import com.hxzy.shop.entity.*;
import com.hxzy.shop.order.dto.req.*;
import com.hxzy.shop.order.dto.resp.*;
import org.springframework.transaction.annotation.Transactional;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * @Author rlj
 * @Date 2021/8/9 10:31
 * @Version 1.0
 */
public interface OrderService {

    /**
     * 订单列表
     *
     * @param orderManageReq 订单请求体
     * @return 订单分页
     */
    PageInfo<OrderManageListResp> getOrderManageList(OrderManageReq orderManageReq);



//    /**
//     * 小程序订单列表
//     *
//     * @param orderListReq 请求体
//     * @return 订单列表
//     */
//    PageInfo<OrderListResp> getOrderList(OrderListReq orderListReq);

    /**
     * 订单详细
     *
     * @param orderDetailReq 订单详情请求体
     * @return 订单详情
     */
    OrderDetailResp getOrderDetail(OrderDetailReq orderDetailReq);

    /**
     * 获得订单列表总数
     *
     * @param orderCountsReq 请求体
     * @return 订单列表总数
     */
    OrderCountsResp orderCountS(OrderCountsReq orderCountsReq);


    /**
     * 获得所有门店
     *
     * @return 门店集合
     */
    List<StoreResp> getStoreList();


//    /**
//     * 修改用户的发货地址
//     *
//     * @param updateUserDetailReq 请求体
//     * @return 是否成功
//     */
//    Boolean updateUserDetail(UpdateUserDetailReq updateUserDetailReq);
//
//    /**
//     * 处方信息
//     *
//     * @param orderIdReq 请求体
//     * @return 用药人信息
//     */
//    Prescription getPrescription(OrderIdReq orderIdReq);
//
//    /**
//     *
//     * @param orderIdReq
//     * @return
//     */
//    LianouRx getLianOuRx(OrderIdReq orderIdReq);
//    /**
//     * 订单发货备货
//     *
//     * @param orderSendPackageReq 请求体
//     * @return 是否成功
//     */
//    Boolean orderSendPackage(OrderSendPackageReq orderSendPackageReq);
//
//    /**
//     * 订单关闭
//     *
//     * @param orderIdReq 请求体
//     * @return 是否成
//     */
//    Boolean shutOrder(OrderIdReq orderIdReq);
//
//
//    /**
//     * 导出订单
//     *
//     * @param orderExportReq 请求体
//     * @param response       response
//     * @return 订单
//     */
//    void orderExport(OrderExportReq orderExportReq, HttpServletResponse response);
//
//
//    /**
//     * 确认收货
//     *
//     * @param orderIdReq 请求体
//     * @return 是否成功
//     */
//    Boolean confirmReceipt(OrderIdReq orderIdReq);
//
//
//    /**
//     * 取消订单
//     *
//     * @param orderIdReq 请求体
//     * @return 是否成功
//     */
//    Boolean cancellationOrder(OrderIdReq orderIdReq);
//
//
//    /**
//     * 删除订单
//     *
//     * @param orderIdReq 请求体
//     * @return 是否成功
//     */
//    Boolean deleteOrder(OrderIdReq orderIdReq);
//
//    /**
//     * 小程序计数
//     *
//     * @param orderCountReq 请求体
//     * @return 订单数量
//     */
//    AppletOrderCountResp orderCount(AppletOrderCountReq orderCountReq);
//
//
//    /**
//     * 小程序订单详情
//     *
//     * @param orderDetailReq 请求体
//     * @return 小程序订单详情
//     */
//    AppletOrderDetailResp getAppletOrderDetail(AppletOrderDetailReq orderDetailReq);
//
//    /**
//     * 恢复库存
//     *
//     * @param orderTable 订单
//     */
//    @Transactional(rollbackFor = Exception.class)
//    void recoverRepertory(OrderTable orderTable);
//
//    /**用户自主上传处方单信息*/
//    OrderInnerUserselfPrescription getUserSelfe(OrderIdReq orderIdReq);
//
//    Boolean editUserSelfPrescriptionUrl(EditUserSelfPrescriptionUrlReq req);
}
